package com.lzh.financial;


import java.util.ArrayList;
import java.util.List;

/**
 * @author reborn0530
 * @date 2021/3/27 12:36
 */
public class Che300 {

    public static void main(String[] args) {
        //设初始值，随机抽取几对字符串比较
        List<String> list1 = new ArrayList<>();
        list1.add("奥迪 奥迪A4L 2019款 35 TFSI 进取版 国V");
        list1.add("奥迪 奥迪A4L 2016款 35 TFSI 自动 运动型");
        list1.add("宝马 宝马3系 2016款 320Li 豪华设计套装");
        list1.add("大众 辉腾 2011款 V6 5座加长Individual版");
        list1.add("大众 途锐 2017款 3.0T 手自一体 15周年定制版");
        list1.add("大众 探岳 2019款 330TSI 双离合 四驱 开疆版");
        list1.add("奥迪 奥迪S3 2017款 改款 2.0T Limousine");
        List<String> list2 = new ArrayList<>();
        list2.add("奥迪 奥迪A4L 2019款 奥迪A4L 35 TFSI 进取型 国V");
        list2.add("奥迪 奥迪A4L 2016款 奥迪A4L 35 TFSI 自动运动型");
        list2.add("宝马 宝马3系 2016款 宝马3系 320Li 豪华设计套装");
        list2.add("大众 辉腾(进口) 2011款 辉腾(进口) 3.6L V6 5座加长Individual版");
        list2.add("大众 途锐(进口) 2017款 途锐(进口) 3.0TSI 启程型");
        list2.add("大众 探岳 2019款 探岳 330TSI 四驱豪华型 国V");
        list2.add("奥迪 奥迪S3(进口) 2017款 奥迪S3(进口) 改款 S3 2.0T Limousine");
        strMatch(list1,list2);
    }


    static void strMatch(List<String> a,List<String> b){
        //a表示a表，b表示b表，a b两表长度一致
        for (int i = 0; i < a.size(); i++) {
            String a1 = a.get(i);
            String b1 = b.get(i);
            //统一处理，方便比较，定义一个新的字符串作为处理完的新字符串
            String a2=a1.replace("型","版").replace("套餐","版");
            String b2=b1.replace("型","版").replace("套餐","版");
            if (a2.replace(" ","").contains(b2)||b2.replace(" ","").contains(a2)){
                System.out.println("'"+a1+"’ 和 '"+b1 +"'"+ " 类型相同");
                    continue;
            } else if (a2.contains("版")||b2.contains("版")){
                String[] s1 = a2.split(" ");
                String[] s2 = b2.split(" ");
                int a2Index=0;
                int b2Index=0;
                //直接查找类型是否一样
                for (int i1 = 0; i1 < s1.length; i1++) {
                    if (s1[i1].contains("版")) {
                        a2Index=i1;
                        break;
                    }
                }
                for (int i1 = 0; i1 < s2.length; i1++) {
                    if (s2[i1].contains("版")) {
                        b2Index=i1;
                        break;
                    }
                }
                //用长度更长的去查看是否包含短的那个
                if (s1[a2Index].length()>=s2[b2Index].length()){
                    if (s1[a2Index].contains(s2[b2Index])) {
                        System.out.println("'"+a1+"’ 和 '"+b1 +"'"+ " 类型相同");
                        continue;
                    }
                }else {
                    if (s2[b2Index].contains(s1[a2Index])) {
                        System.out.println("'"+a1+"’ 和 '"+b1 +"'"+ " 类型相同");
                        continue;
                    }
                }
                //判断不含有型的
            }else {
                //去掉括号里的内容
                a2=a2.replaceAll("\\(.*?\\)|\\)|（.*?）|）", "");
                b2=b2.replaceAll("\\(.*?\\)|\\)|（.*?）|）", "");
                String[] s1 = a2.split(" ");
                String[] s2 = b2.split(" ");
                //去掉重复的字符串
                String ss1=s1[0];
                String ss2=s2[0];
                //用长度更长的去查看是否包含短的那个
                //如果b2更长
                if (b2.length()>b1.length()){
                    for (int i1 = 1; i1 < s2.length; i1++) {
                        if (!ss2.contains(s2[i1])){
                            ss2=ss2+s2[i1];
                        }
                    }
                    ss1=ss1.replace(" ","");
                    if (ss2.contains(ss1)) {
                        System.out.println("'"+a1+"’ 和 '"+b1 +"'"+ " 类型相同");
                        continue;
                    }
                    //如果b1更长
                }else {
                    for (int i1 = 1; i1 < s1.length; i1++) {
                        if (!ss1.contains(s1[i1])){
                            ss1=ss1+s1[i1];
                        }
                    }
                    ss2=ss2.replace(" ","");
                    if (ss1.contains(ss2)) {
                        System.out.println("'"+a1+"’ 和 '"+b1 +"'"+ " 类型相同");
                        continue;
                    }
                }
            }
            //不满足条件的就是不相同或者没判断出的
            System.out.println("'"+a1+"’ 和 '"+b1+"'"+" 类型不相同");
        }
    }
}
